import numpy as np
import plotly.graph_objects as go

# 生成x和y的数据范围
x = np.linspace(-5, 5, 100)  # x从-5到5，生成100个点
y = np.linspace(-5, 5, 100)  # y从-5到5，生成100个点

# 创建网格
X, Y = np.meshgrid(x, y)

# 计算z值，z = x²（与y无关）
Z = X **2

# 创建3D表面图
fig = go.Figure(data=[go.Surface(z=Z, x=X, y=Y)])

# 设置图表布局
fig.update_layout(
    title='函数 z = x² 的3D图像',
    scene=dict(
        xaxis_title='X轴',
        yaxis_title='Y轴',
        zaxis_title='Z轴',
        # 设置坐标轴范围使图像比例更协调
        xaxis=dict(range=[-5, 5]),
        yaxis=dict(range=[-5, 5]),
        zaxis=dict(range=[0, 25])
    ),
    margin=dict(l=0, r=0, b=0, t=40)  # 调整边距
)

# 显示图像
fig.show()
